home *** CD-ROM | disk | FTP | other *** search
/ Super PC 34 / Super PC 34 (Shareware).iso / spc / UTIL / DJGPP2 / V2 / DJTST200.ZIP / tests / libc / go32 / ctrlc.c next >
Encoding:
C/C++ Source or Header  |  1995-07-17  |  856 b   |  43 lines

  1. #include <stdio.h>
  2. #include <unistd.h>
  3. #include <dpmi.h>
  4. #include <go32.h>
  5.  
  6. extern short __djgpp_ds_alias;
  7.  
  8. void
  9. psel(int s)
  10. {
  11.   unsigned long base;
  12.   __dpmi_get_segment_base_address(s, &base);
  13.   printf("selector 0x%04x : base=0x%lx, limit=0x%lx, flags=0x%x\n",
  14.      s, base, __dpmi_get_segment_limit(s),
  15.      __dpmi_get_descriptor_access_rights(s));
  16. }
  17.  
  18. int
  19. main(void)
  20. {
  21.   printf("cs = %x, ds = %x, dsa = %x\n", _my_cs(), _my_ds(), __djgpp_ds_alias);
  22.   psel(_my_cs());
  23.   psel(_my_ds());
  24.   psel(__djgpp_ds_alias);
  25.   asm("pushl ___djgpp_ds_alias; popl %ds");
  26.   while (1)
  27.   {
  28.     int i, j;
  29.     for (i=0; i<70; i++)
  30.     {
  31.       for (j=0; j<100; j++)
  32.     write(1, "X\b", 2);
  33.       write(1, "X\bX", 3);
  34.     }
  35.     for (i=0; i<70; i++)
  36.     {
  37.       write(1, "\b-\b", 3);
  38.       for (j=0; j<100; j++)
  39.     write(1, "-\b", 2);
  40.     }
  41.   }
  42. }
  43.